Skip to main content

System Design Basics

Resource

  1. Large-scale distributed systems:
  • Large-scale: handles massive amounts of data and requires significant computing power.
  • Distributed systems: workload is spread across multiple servers in different locations, not on a single central server.
    • if a server fails, other servers can take the load and keep the system running → fault tolerant.
    • when searching the web - results can be fetched from geographically closer servers, making it faster. → performance.
    • additional servers can be easily added to handle the extra load, making the system adaptable to growth. → scalability.
  1. ** Software Design Pattern:**
  • building blocks that provide general, reusable solutions to commonly occurring problems within a given context in software design.
  • Example: Publisher Subscriber Model. → System design patterns allow for scalable, maintainable systems because engineers can take a lot of business requirements and convert them into technical solutions.